Crate svgfilters[][src]

svgfilters provides low-level SVG filters implementation.

svgfilters doesn’t implement the whole filters workflow, just operations on raster images. Filter region calculation, image colors (un)premultiplication, input validation, filter primitives order, transformations, etc. should be implemented by the caller.

Implemented filters

Unimplemented filters

  • feFlood, because it’s just a simple fill.
  • feImage, because it can be implemented only by a caller.
  • feTile, because it’s basically a fill with pattern.
  • feMerge, because it’s just a layer compositing and a 2D library will be faster.
  • feOffset, because it’s just a layer compositing with offset.

Performance

The library isn’t well optimized yet, but it’s mostly allocation free. Some methods will allocate necessary, temporary buffers which will be reflected in the documentation. But majority of methods will work on provided buffers.

Structs

ConvolveMatrix

A convolve matrix used by convolve_matrix.

ImageRef

An image reference.

ImageRefMut

A mutable ImageRef variant.

NormalizedValue

A normalized value.

Enums

ColorChannel

A color channel.

ColorMatrix

A color matrix used by color_matrix.

EdgeMode

An edges processing mode used by convolve_matrix.

LightSource

A light source.

MorphologyOperator

A morphology operation.

TransferFunction

A transfer function used component_transfer.

Functions

arithmetic_composite

Performs an arithmetic composition.

box_blur

Applies a box blur.

color_matrix

Applies a color matrix filter.

component_transfer

Applies component transfer functions for each src image channel.

convolve_matrix

Applies a convolve matrix.

demultiply_alpha

Demultiplies provided pixels alpha.

diffuse_lighting

Renders a diffuse lighting.

displacement_map

Applies a displacement map.

from_linear_rgb

Converts input pixel from LinearRGB into sRGB.

iir_blur

Applies an IIR blur.

into_linear_rgb

Converts input pixel from sRGB into LinearRGB.

morphology

Applies a morphology filter.

multiply_alpha

Multiplies provided pixels alpha.

specular_lighting

Renders a specular lighting.

turbulence

Applies a turbulence filter.

Type Definitions

RGB8

8-bit RGB

RGBA8

8-bit RGBA, alpha is last. 0 = transparent, 255 = opaque.